/**
 * 系统角色实体类
 * 用于描述系统中的角色信息
 * 包含角色的基本信息、权限等
 */
package cc.mrbird.febs.system.domain;

import cc.mrbird.febs.common.converter.TimeConverter;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.wuwenze.poi.annotation.Excel;
import com.wuwenze.poi.annotation.ExcelField;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.util.Date;

/**
 * 角色实体类
 * 对应数据库表t_role
 * @author MrBird
 */
@Data
@TableName("t_role")
@Excel("角色信息表")
public class Role implements Serializable {

    private static final long serialVersionUID = -1714476694755654924L;

    /** 角色ID */
    @TableId(value = "ROLE_ID", type = IdType.AUTO)
    private Long roleId;

    /** 角色名称 */
    @NotBlank(message = "{required}")
    @Size(max = 10, message = "{noMoreThan}")
    @ExcelField(value = "角色名称")
    private String roleName;

    /** 角色描述 */
    @Size(max = 50, message = "{noMoreThan}")
    @ExcelField(value = "角色描述")
    private String remark;

    /** 创建时间 */
    @ExcelField(value = "创建时间", writeConverter = TimeConverter.class)
    private Date createTime;

    /** 修改时间 */
    @ExcelField(value = "修改时间", writeConverter = TimeConverter.class)
    private Date modifyTime;

    /** 搜索范围：创建时间开始 */
    private transient String createTimeFrom;
    /** 搜索范围：创建时间结束 */
    private transient String createTimeTo;
    /** 角色对应的菜单ID */
    private transient String menuId;

}